package com.rentong.wx.cust.service.impl;

import com.rentong.wx.cust.dao.CustFapiaoApplyDao;
import com.rentong.wx.cust.dao.CustFapiaoTaitouDao;
import com.rentong.wx.cust.dao.CustServiceOrderDao;
import com.rentong.wx.cust.domain.CustFapiaoApplyEntity;
import com.rentong.wx.cust.domain.CustFapiaoTaitouEntity;
import com.rentong.wx.cust.domain.CustServiceOrderEntity;
import com.rentong.wx.cust.dto.CustFapiaoApplyEntityDto;
import com.rentong.wx.cust.service.CustFapiaoApplyService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import javax.annotation.Resource;
import java.util.Date;
import java.util.List;

@Service
public class CustFapiaoApplyServiceImpl implements CustFapiaoApplyService {

    @Resource
    private CustFapiaoApplyDao custFapiaoApplyDao;

    @Resource
    private CustFapiaoTaitouDao custFapiaoTaitouDao;

    @Autowired
    private CustServiceOrderDao custServiceOrderDao;


    @Transactional(rollbackFor = Exception.class)
    @Override
    public List<CustFapiaoApplyEntityDto> getFapiaoApplyList(CustFapiaoApplyEntityDto custFapiaoApplyEntityDto) {
        return custFapiaoApplyDao.getFapiaoApplyList(custFapiaoApplyEntityDto);
    }


    @Transactional(rollbackFor = Exception.class)
    @Override
    public int insertFapiaoApply(CustFapiaoApplyEntityDto custFapiaoApplyEntityDto) {
        CustFapiaoApplyEntity custFapiaoApplyEntity = new CustFapiaoApplyEntity();
        custFapiaoApplyEntity.setCustId(custFapiaoApplyEntityDto.getCustId());
        custFapiaoApplyEntity.setFapiaoAmount(custFapiaoApplyEntityDto.getFapiaoAmount());
        custFapiaoApplyEntity.setServiceOrderId(custFapiaoApplyEntityDto.getServiceOrderId());
        custFapiaoApplyEntity.setAddTime(new Date());

        //填入开票信息
        CustFapiaoTaitouEntity cft = custFapiaoTaitouDao.selectByPrimaryKey(custFapiaoApplyEntityDto.getFapiaoTaitouId());

        custFapiaoApplyEntity.setFapiaoType(cft.getFapiaoType());
        custFapiaoApplyEntity.setTaitou(cft.getTaitou());
        custFapiaoApplyEntity.setShuihao(cft.getShuihao());
        custFapiaoApplyEntity.setMail(cft.getMail());
        custFapiaoApplyEntity.setPhone(cft.getPhone());
        custFapiaoApplyEntity.setWx(cft.getWx());
        custFapiaoApplyEntity.setFapiaoState(2);
        if (cft.getFapiaoType() == 1) {
            //企业抬头
            custFapiaoApplyEntity.setCompanyAddress(cft.getCompanyAddress());
            custFapiaoApplyEntity.setCompanyTel(cft.getCompanyTel());
            custFapiaoApplyEntity.setKaihuhang(cft.getKaihuhang());
            custFapiaoApplyEntity.setZhanghao(cft.getZhanghao());
        }
        int result = custFapiaoApplyDao.save(custFapiaoApplyEntity);

        CustServiceOrderEntity custServiceOrderEntity = new CustServiceOrderEntity();
        custServiceOrderEntity.setFapiaoApplyId(custFapiaoApplyEntity.getFapiaoApplyId());
        custServiceOrderEntity.setServiceOrderId(custFapiaoApplyEntityDto.getServiceOrderId());
        custServiceOrderDao.updateByPrimaryKeySelective(custServiceOrderEntity);
        return result;
    }

}